import path from 'path'
// https://nuxt.com/docs/api/configuration/nuxt-config
export default defineNuxtConfig({
  compatibilityDate: '2025-07-15',
  devtools: { enabled: true },
  // 配置@指向app文件夹
  alias: { '@': path.resolve(__dirname, 'app') },
  css: ['~/assets/css/reset.css', 'ant-design-vue/dist/reset.css'],
  // 启用 ESLint 模块
  modules: ['@nuxt/eslint'],
  // 明确启用 pages
  pages: true,
  // 插件配置
  plugins: ['~/plugins/antd.ts'],
  // 图片优化
  image: {
    // 启用图片优化
    quality: 85,
    // 生成响应式图片
    screens: {
      sm: 640,
      md: 768,
      lg: 1024,
      xl: 1280,
      '2xl': 1536,
    },
    // 缓存目录
    cacheDir: '.nuxt/image',
  },
  // 字体优化
  fontMetrics: {
    // 启用字体指标收集
    enabled: true,
  },
  // 性能优化
  performance: {
    // 启用性能优化
    hints: process.env.NODE_ENV === 'production' ? 'warning' : false,
    // 禁用 prefetch
    prefetch: false,
    // 禁用 preload
    preload: true,
    // 资源提示
    resourceHints: true,
  },

  // Vite 配置
  vite: {
    ssr: {},
    // 代码分割配置
    build: {
      // 启用代码分割
      rollupOptions: {
        output: {
          manualChunks: {
            // 将大型依赖分离成单独的 chunk
            'vue-vendor': ['vue', 'vue-router'],
            'markdown-vendor': ['marked', 'highlight.js', 'github-markdown-css'],
            'axios-vendor': ['axios'],
            'antd-vendor': ['ant-design-vue'], // 将 antd 分离成单独的 chunk
          },
        },
      },
      // 启用 CSS 代码分割
      cssCodeSplit: true,
      // 启用压缩
      minify: 'terser',
      // 生成 sourcemap
      sourcemap: false,
      // 启用 brotli 压缩
      brotliSize: true,
    },
    // 依赖预构建配置
    optimizeDeps: {
      // 强制预构建的依赖
      include: ['axios', 'marked', 'highlight.js'],
    },
    // 缓存配置
    cacheDir: '.vite-cache',
    // 服务器配置
    server: {
      // 启用 gzip 压缩
      compress: true,
    },
  },

  // Nitro 配置
  nitro: {
    logLevel: 'warn', // 只显示警告及以上级别的日志
  },

  app: {
    head: {
      title: '鹿鸣博客-专注全栈技术分享',
      titleTemplate: '%s - 鹿鸣博客', // 可选：标题模板
      charset: 'utf-8',
      viewport: 'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no',

      meta: [
        { name: 'description', content: '专注全栈技术分享的博客' },
        { name: 'keywords', content: '全栈技术,前端开发,后端开发,技术分享,博客' },
        { name: 'robots', content: 'index, follow' },
        { name: 'author', content: '鹿鸣博客' },
        {
          name: 'viewport',
          content: 'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no',
        },
        { name: 'format-detection', content: 'telephone=no, email=no' },
        { name: 'theme-color', content: '#ffffff' },
        // 性能优化相关 meta 标签
        { httpEquiv: 'X-UA-Compatible', content: 'IE=edge,chrome=1' },
        { httpEquiv: 'Cache-Control', content: 'public, max-age=31536000' },
      ],
      // 移除不必要的标签
      htmlAttrs: {
        lang: 'zh-CN',
        // 启用浏览器预加载
        'data-n-head-ssr': true,
      },
    },
  },
})
